來架個網站吧
完成需求訪談與系統流程規劃後,接下來就是資料規劃。
恩~距離打程式碼真的還有一段路 XDDD
在規劃資料表前需要考慮一些因素
上述因素是我在規劃資料表時必須考慮的因素。
這次的需求資料來源是國語小字典,下圖是資料的部份擷圖。
乍看之下,有一點亂
觀察資料之後,可以設計下列資料表欄位:
看完資料之後,接下來要將系統功能加入考慮因素。此次的功能有搜尋
單字、系統要承受每分鐘10次查詢
,所以欄位單字
會開定長。
定長文字
/ 1技術框架也會影響資料規劃,本次是使用下列技術:
以資料庫來說,可變動文字
型態,在Oracle 會是以 varchar2
,如果資料欄位中預期會有中文字則會採用nvarchar2
,在postgresql需要規劃varchar
即可。
本次是使用postgresql,所以下列是加入資料庫因素的資料表欄位:
另外在程式技術框架,因為Grails
是採用事先約定規則,因此在規劃資料需要多開下列欄位
以下是這次資料表的完整規劃
以下是最後完成的table schema
create table dict(
id bigint generated always as identity,
version integer default 0,
date_created timestamp default CURRENT_TIMESTAMP,
last_updated timestamp,
word char(1),
radical varchar(1),
total_strokes integer,
out_strokes integer,
mpc varchar(4),
explanation text,
CONSTRAINT dict_pk PRIMARY KEY (id)
);
comment on table dict IS '字典';
comment on column dict.word is '單字';
comment on column dict.radical is '部首';
comment on column dict.total_strokes is '總筆畫數';
comment on column dict.out_strokes is '部首外筆畫';
comment on column dict.mpc is '注音';
comment on column dict.explanation is '解釋';
create unique index dict_un1 on dict (word);